## 字符串的常用方法


my_str = "This Is CAli."
my_title = "Hello World！"
my_str_num = "123"
my_str_num2 = "一二三四"
my_str_str = "heLlo"


###### 判断is系列 -> True/False
# 判断aa变量是否是数字
print("判断数字:", my_str_num.isdigit())
print("判断数字:", my_str_num.isnumeric())
print("判断数字:", my_str_num2.isdigit())
print("判断数字:", my_str_num2.isnumeric())
# 判断aa变量是否是字母A-Za-z
print("判断字母:", my_str_str.isalpha())
# 判断aa变量是否是数字或者字母
print("判断数字字母:", my_str_num2.isalnum())
# Title是每个单词首字母大写
print("判断是否为title格式:", my_str_num.istitle())
print("判断是否为title格式:", my_title.istitle())
print("判断大写:", my_str_str.isupper())
# 检测一段字符串可否被当作标志符，即是否符合变量命名规则
print("判断标识符：", "1_abc".isidentifier())
print("判断标识符：", "_1abc".isidentifier())
print("判断是否可打印:", my_str_num.isprintable())
print("判断是否全为空格:", my_str_num.isspace())
# 判断字符串是否以 Li结尾
# Hello li.abc
print(my_str_str.endswith("li."))
# 获得字符串是否以某子字符串开始
print(my_str_str.startswith('this'))


####### 查找统计类
# 长度
print("长度：", len(my_str))
# 统计i字母在aa变量里出现次数(区分大小写)
print("i出现次数：", my_str.count('i'))
# 显示i字母在aa变量里的序列下标,没有会报错， 下标从0开始
print("i第一次位置：", my_str.index('i'))
# 查找i,找到返回其起始位置， 找不到返回-1
print("i出现的位置：", my_str.find('xx'))


############## 转换 ############
msg = "Hello World Cali"

# 将变量aa转换为大写(不是修改my_str本身)
print("大写:", msg.upper())
# 将变量aa转换为小写
print("小写:", msg.lower())
# 将字符串中的单词首字母大写
print("标题:", my_str.title())

# 指定:作为分隔符来分离aa变量，分隔符可以是任意字符（默认是空格）
# split非常重要， 得到列表类型
# 将字符串切割成列表
print("切割：", "root:x:root:122".split(':'))
# 列表：['root', 'x', 'root', '122']
# 将可迭代对象my_list用sep拼接成字符串(my_list的值需要为str)

# join非常重要， 得到一个字符串
# 将列表转化为字符串
my_list = ['a', 'b', 'c']
sep = 'x'
print("拼接：", sep.join(my_list))

# 大小写互换
print(msg.swapcase())

# 0填充
print(msg.zfill(40))

# replace很重要: 替换
print("Hello World Cali".replace("Cali", "CALI", 1))

# 首字母大写
print(my_str.capitalize())

# 大写全部变小写
print(my_str_str.casefold())

# 输出(左、右、中对齐)
print(my_str.center(50,' '))
print(my_str.ljust(50,' '))
print(my_str.rjust(50,' '))

# 将字符串编码成bytes格式
print(my_str_str.encode())

# 将\t转换成多长的空格
print("Cali\tFeng".expandtabs(1))








